package gobelinmaker.scripting;

import gobelinmaker.client.KanavaPanel;
import java.awt.BorderLayout;
import java.awt.Toolkit;

/**
 * Szkripszerkesztő ablak.
 *
 * @author imruf84
 */
public class ScriptEditorFrame extends javax.swing.JFrame {

    /**
     * Kódszerkesztő.
     */
    private final ScriptEditorPanel editorPanel;
    /**
     * Kanavapanel.
     */
    private final KanavaPanel kp;

    /**
     * Konstruktor.
     *
     * @param kp kanavapanel
     */
    public ScriptEditorFrame(KanavaPanel kp) {

        initComponents();

        // Kanavapanel tárolása.
        this.kp = kp;

        // Szkriptszerkesztő panel létrehozása.
        editorPanel = new ScriptEditorPanel(this.kp);
        this.getContentPane().add(editorPanel, BorderLayout.CENTER);

        // Ablak címének megadása.
        this.updateTitle();

        // Ablak pozicionálása.
        this.setLocationRelativeTo(null);

        // Beviteli mező fókusza.
        editorPanel.codeTextArea.requestFocus();
    }

    /**
     * Ablak címének frissítése.
     */
    public final void updateTitle() {
        String title = "Kódszerkesztő";
        if (!kp.getKanava().getFileSimpleName().isEmpty()) {
            title += " - " + kp.getKanava().getFileSimpleName();
        }
        this.setTitle(title);
    }

    /**
     * Szkript forráskódjának megadása.
     *
     * @param script szkript forráskódja
     */
    public void setSourceCode(String script) {
        this.editorPanel.setSourceCode(script);
    }

    /**
     * Szkript forráskódjának a lekérdezése.
     *
     * @return szkript forráskódja
     */
    public String getSourceCode() {
        return this.editorPanel.getSourceCode();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("icons/MainFrameIcon.png")));
        setMinimumSize(new java.awt.Dimension(250, 250));

        pack();
    }// </editor-fold>//GEN-END:initComponents
    // Variables declaration - do not modify//GEN-BEGIN:variables
    // End of variables declaration//GEN-END:variables
}
